#ifndef TRAJECTORY_PREDICTOR_HPP
#define TRAJECTORY_PREDICTOR_HPP

#include "kalman_filter.hpp"
#include <vector>
#include <queue>
#include <utility>

struct PredictedPoint {
    double x;
    double y;
    double t;

    PredictedPoint() : x(0), y(0) {}
    PredictedPoint(double _x, double _y) : x(_x), y(_y) {}
    PredictedPoint(double _x, double _y, double _t) : x(_x), y(_y), t(_t) {}
};

class TrajectoryPredictor {
public:
    static std::vector<PredictedPoint> predict_trajectory(
        double x, double y, double t, KalmanFilter& kf, double& t_last, std::vector<PredictedPoint>& predictions);
};

#endif